package com.xzbd.minio.controller;

import java.util.List;
import java.util.Objects;

import javax.annotation.Resource;

import com.google.common.collect.Lists;
import com.xzbd.minio.vo.ObjectVo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import io.minio.ListObjectsArgs;
import io.minio.MinioClient;
import io.minio.Result;
import io.minio.messages.Item;

@RestController
@RequestMapping("/obj")
public class ObjectController {

    @Resource
    private MinioClient minioClient;

    @GetMapping("/list/{bktName}")
    public List<ObjectVo> listObjects(@PathVariable String bktName) {
        // 构造参数
        ListObjectsArgs args = ListObjectsArgs.builder().bucket(bktName).build();

        // 查询数据
        Iterable<Result<Item>> items = minioClient.listObjects(args);

        List<ObjectVo> objVos = Lists.newArrayList();
        // 检查、转换 并 返回结果
        if (Objects.isNull(items)) {
            return objVos;
        }

        return ObjectVo.fromResItem(items);
    }
}
